package com.xuecheng.system.controller;

import com.xuecheng.commons.enums.ErrorCode;
import com.xuecheng.commons.model.dto.LoginDto;
import com.xuecheng.commons.model.vo.AuthInfo;
import com.xuecheng.commons.model.vo.CompanyVo;
import com.xuecheng.commons.model.vo.ResponseResult;
import com.xuecheng.commons.utils.AuthInfoHolder;
import com.xuecheng.commons.utils.BeanHelper;
import com.xuecheng.commons.utils.JwtUtils;
import com.xuecheng.system.domain.Company;
import com.xuecheng.web.exception.BusinessException;
import org.springframework.web.bind.annotation.*;
import com.xuecheng.system.service.CompanyService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;

/**
 * <p>
 * 教育机构前端控制器
 * </p>
 *
 * @author itheima
 */
@Slf4j
@RestController
public class CompanyController {

    @Autowired
    private CompanyService  companyService;


    //  机构查询
    @GetMapping("/company/mine")
    public ResponseResult mine(){ //接收参数
      //      //2.校验token
      //      Boolean aBoolean = JwtUtils.verifyToken(token);
      //      if (!aBoolean){
      //          throw new BusinessException(ErrorCode.NOTTOKEN); //token 不合法
      //      }
      //      // 解析token
      //      AuthInfo infoFromToken = JwtUtils.getInfoFromToken(token);
      //      //根据企业id查询数据库
      //      Company company = companyService.getById(infoFromToken.getCompanyId());
      //      // 封装并返回vo
      //      CompanyVo vo = BeanHelper.copyProperties(company, CompanyVo.class);
      //      return ResponseResult.okResult(vo);

        // 1.从线程中获取
        AuthInfo authInfo = AuthInfoHolder.getAuthInfo();

        // 根据企业id 查询数据库
        Company company = companyService.getById(authInfo.getCompanyId());
        // 封装并返回vo
        CompanyVo vo = BeanHelper.copyProperties(company, CompanyVo.class);
        return ResponseResult.okResult(vo);

    }
}
